//
//  EmoticonPackage.swift
//  02-表情
//
//  Created by 张宏芝 on 15/9/11.
//  Copyright © 2015年 kama. All rights reserved.
//

import UIKit

// 表情包模型
class EmoticonPackage: NSObject {

/// 目录名
    var id:String?
/// 分组名
    var group_name_cn:String?
/// 表情符号数组
    lazy var emoticons = [Emoticon]()
    
    init(dict:[String:AnyObject]) {
        super.init()
    /// 用KVC进行赋值的时候,程序会循环的调用setValueForKey,而且程序执行的顺序不能控制不能直接用KVC的方式进行赋值
        id = dict["id"] as? String
        group_name_cn = dict["group_name_cn"] as? String
        
//        每隔20个添加一个删除按钮
        var index = 0
        
        if let array = dict["emoticons"] as? [[String:String]]{
//            循环创建emoticon数组
            for var d in array {
                if let imagePath = d["png"]{
                    d["png"] = id! + "/" + imagePath
                }
                emoticons.append(Emoticon(dict:d))
                
                index++
//                判读是否是20个
                if index == 20 {
                    emoticons.append(Emoticon(isRemove: true))
                    index = 0
                }
            }
        }
        appendBlankEmoticon()
    }
//    追加空白表情
    func appendBlankEmoticon(){
        let count = emoticons.count % 21
        if count == 0 && emoticons.count > 0 {
            return
        }
//        追加20个空白按钮
        for _ in count..<20{
            emoticons.append(Emoticon(isEmpty: true))
        }
        emoticons.append(Emoticon(isRemove: true))
    }
    
    override var description:String{
        let keys = ["id","group_name_cn","emoticons"]
        return dictionaryWithValuesForKeys(keys).description
    }
}
